package sim.utils.rndGen;

public class RGMediosCuadrados extends RandomGenerator {

	protected RGMediosCuadrados() {
		super();
	}

	protected RGMediosCuadrados(long seed) {
		super(seed);
	}

	@Override
	public double next() {
		//long tmpSeed = this.nextLong(Math.round(this.lastRandom * 1000));
		//this.lastRandom = (double) (tmpSeed * 0.0001);
		this.seed = this.nextLong(this.seed);
		this.lastRandom = (double) (this.seed * 0.0001);
		return super.lastRandom;

	}

	private long nextLong(long seed) {

		long resultado = seed;
		String sResult = "";
		resultado = resultado * resultado;
		sResult = String.format("%08d", resultado);
		sResult = sResult.substring(sResult.length() - 6, sResult.length() - 2);
		resultado = Integer.parseInt(sResult);
		return (long) resultado;
	}

}
